package com.flyme.module.file.provider.service;


import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.flyme.common.core.model.ResultBody;
import com.flyme.core.base.supper.entity.EntityMap;
import com.flyme.core.base.supper.service.IBaseService;
import com.flyme.module.file.client.entity.SysCataLog;
import com.flyme.module.file.client.entity.SysCourseType;

import java.util.List;
import java.util.Map;

/**
 * @author: flyme
 * @date: 2018/3/7 15:28
 * @desc: 课程分类接口
 */
public interface SysCataLogService extends IBaseService<SysCataLog> {

    /**
     * 获取课程目录
     *
     * @param courseId
     * @return
     */
    List<Map<String, Object>> selectCataLog(Long courseId);

    /**
     * 添加课程目录
     *
     * @param cataLog
     * @return
     */
    Boolean addCataLog(SysCataLog cataLog);
    /**
     * 更新课程目录
     *
     * @param cataLog
     * @return
     */
    Boolean updateCataLog(SysCataLog cataLog);

    /**
     * 删除课程目录
     * @param cataLogId
     * @return
     */
    ResultBody delById(Long cataLogId);

    /**
     * 根据视频id查询目录
     */
     SysCataLog findByVideoId(String videoId);

    /**
     * 查询一级目录
     */
     List<Map<String, Object>> selectOne(Long courseId);


    /**
     * 查询二级目录（即视频）
     */
     List<SysCataLog> selectTwo(String catalogId);

    /**
     * 查询二级目录（即视频）
     */
     List<EntityMap> selectTwo2(String catalogId, String title, String cataLogimg);


     Boolean updateSortNo(Long courseId,Long parentId,Integer n1,Integer n2);

    /**
     * 根据课程id查询该课程下视频数量
     */
    Integer countByCourseId(Long courseId);

    /**
     * 查询多个课程下所有视频数量
     */
    Integer countByCourseIds(String[] courseIds);

    /**
     * 根据课程查询该课程下的收费目录
     */
    List<SysCataLog> selectByCouse(Long courseId);

    /**
     * 将该课程下的所有目录改为免费
     */
    boolean updateFree(Long courseId);
}
